package controleur;

import java.util.List;

import modele.Trajectoire;

public class ControleurTrajectoire {
	// Variable(s) d'instance
	private final Trajectoire trajectoire;
	
	// Constructeur(s)
	public ControleurTrajectoire() {
		this.trajectoire = new Trajectoire();
	}
	
	public ControleurTrajectoire(List<ControleurCoordonnee> trajectoire) {
		this.trajectoire = new Trajectoire(trajectoire);
	}
	
	// Methode(s)
	public int getIndiceActuel() {
		return this.trajectoire.getIndiceActuel();
	}
	
	public List<ControleurCoordonnee> getTrajectoire() {
		return this.trajectoire.getTrajectoire();
	}
	
	public void incrementerIndiceActuel() {
		// Incremente l'indice actuel dans la trajectoire
		this.trajectoire.setIndiceActuel(this.trajectoire.getIndiceActuel()+1);
	}
	
	public ControleurCoordonnee getProchainMouvement() {
		// Retourne le prochain mouvement de l'unite et incremente l'indice actuel dans la trajectoire
		this.incrementerIndiceActuel();
		if(this.trajectoire.getIndiceActuel() < this.trajectoire.getTrajectoire().size()) {
			return this.trajectoire.getTrajectoire().get(this.trajectoire.getIndiceActuel());
		} else {
			return null;
		}
	}
	
	public int taille() {
		return this.trajectoire.getTrajectoire().size();
	}
	
	public ControleurCoordonnee get(int i) {
		if(i < this.taille()) {
			return this.trajectoire.getTrajectoire().get(i);
		} else {
			return null;
		}
	}
	
	@Override
	public String toString() {
		return this.trajectoire.getTrajectoire().toString();
	}
}
